package com.southminority.ethnic.controller.news.vo;

import com.southminority.ethnic.vo.BaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 新闻公告VO
 * 
 * @author SouthMinority
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "新闻资讯视图对象，用于前端展示")
public class NewsVO extends BaseVO {

    @Schema(description = "标题", example = "第五届南方少数民族语言文化学术研讨会圆满召开")
    private String title;

    @Schema(description = "HTML格式的详细内容", example = "<p>会议详情...</p>")
    private String content;

    @Schema(description = "摘要", example = "学术研讨会成功举办，推动少数民族语言文化研究向前发展")
    private String summary;

    @Schema(description = "封面图片URL", example = "http://example.com/cover.jpg")
    private String coverImage;

    @Schema(description = "外部跳转链接URL", example = "https://www.example.com")
    private String externalUrl;

    @Schema(description = "作者ID", example = "1")
    private Long authorId;

    @Schema(description = "作者姓名或发布单位", example = "学术委员会")
    private String authorName;

    @Schema(description = "归属机构ID", example = "1")
    private Long organizationId;

    @Schema(description = "分类", example = "学术会议")
    private String category;

    @Schema(description = "标签，多个标签以逗号分隔", example = "学术研讨,文化交流")
    private String tags;

    @Schema(description = "浏览次数", example = "423")
    private Integer viewCount;

    @Schema(description = "是否置顶", example = "1", allowableValues = {"1", "0"})
    private Integer isTop;

    @Schema(description = "发布时间", example = "2024-01-25T09:00:00")
    private LocalDateTime publishTime;

    @Schema(description = "状态: 1-已发布, 0-草稿, -1-已删除", example = "1", allowableValues = {"1", "0", "-1"})
    private Integer status;
}
